package dominio;
import java.util.Date;
import java.util.Vector;
import utilidades.TConsulta;
import utilidades.Agente;

/**
 * Clase que representa una Aeronave de la fota
 *
 * @author G2.02
 */
public class Aeronave {

    private String matricula;
    private String modelo;
    private int anioFabricacion;
    private Date fechaUltimaRevision;
    private TEstado estado;
    private int id;
    //private Vector<Reporte> listaReportes = new Vector();

    public Aeronave(String matricula, String modelo, int anioFabricacion, String fechaUltimaRevision, String estado, int id) {
        this.matricula = matricula;
        this.modelo = modelo;
        this.anioFabricacion = anioFabricacion;
        this.estado = TEstado.getTEstado(estado);
        this.id = id;
    }
    /**
     * Devuelve un objeto aeronave con los datos de la base de datos
     *
     * @param matricula Matricula del aeronave a obtener
     * @return aux Objeto aeronave
     */
    public static Aeronave read(String matricula) {
        try {
            Agente ag = Agente.getAgente();
            Aeronave aux;
            Vector<Object> aeronaveBase = ag.select(TConsulta.AERONAVE, "SELECT * FROM aeronave WHERE matricula='" + matricula + "'");
            aux = new Aeronave((String) aeronaveBase.get(0), (String) aeronaveBase.get(1), (Integer) aeronaveBase.get(2), (String) aeronaveBase.get(3), (String) aeronaveBase.get(4), (Integer) aeronaveBase.get(5));
            //aux.setListaReportes(GestorReporte.devolverReportes(matricula));
            return aux;
        } catch (Exception ex) {
            System.err.println(ex);
        }
        return null;

    }

    public String getMatricula() {
        return matricula;
    }

    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }
    @Override
    public String toString() {
        return this.matricula + "[" + estado + "]";
    }

    @Override
    public boolean equals(Object aux) {
        return this.matricula.equalsIgnoreCase(((Aeronave) aux).getMatricula());
    }

}
